package ar.edu.uade.centroDistribucion.controladores;

import java.util.Date;
import java.util.Iterator;
import java.util.List;
import java.util.Random;

import com.thoughtworks.xstream.XStream;

import ar.edu.uade.centroDistribucion.Modelo.BusinessDelegate;
import ar.edu.uade.centroDistribucion.framework.BaseControlador;
import ar.edu.uade.centroDistribucion.framework.BaseVista;
import ar.edu.uade.centroDistribucion.herramientas.FileWriter;
import ar.edu.uade.centroDistribucion.valueObjects.ArticuloVO;
import ar.edu.uade.centroDistribucion.valueObjects.SolFabrVO;
import ar.edu.uade.centroDistribucion.valueObjects.VistaSolFabrVO;
import ar.edu.uade.centroDistribucion.vista.VistaGenerarSolicitudFabricacion;


public class ControladorGenerarSolicitudFabricacion extends BaseControlador{

	public ControladorGenerarSolicitudFabricacion(
			BusinessDelegate businessDelegate, BaseVista vista) {
		super(businessDelegate, vista);
		InicializarVista();
		// TODO Auto-generated constructor stub
	}

	public void ProcesarSolFab(List<SolFabrVO> solFabrVO) {
		   
		GenerarXML(solFabrVO);
		EnviarVO(solFabrVO);
		
		}

	private void GenerarXML(List<SolFabrVO> solFabrVO){
		
		try {
			
			for (SolFabrVO solFabVO : solFabrVO) {
				String strXML;
				String url = "C:\\SolFab"+solFabVO.getRefrerenciaSolFabr()+".xml";
				
				XStream xStream = new XStream();
				xStream.alias("solicitudFabricacion", SolFabrVO.class);
				xStream.alias("articulo", ArticuloVO.class);		
				strXML = xStream.toXML(solFabVO);
				
				FileWriter fileWriter = new FileWriter(url);
				fileWriter.write(strXML);
				System.out.println("SolFab Generada con exito.");	
			}		
			
			}catch (Exception e) {
				System.out.println(e.getMessage() + e.toString());
			}	
	}	

	private void EnviarVO(List<SolFabrVO> solFabrVO){
		this.businessDelegate.GenerarSolicitudFabricacion(solFabrVO);
	}
	public void InicializarVista()
	{
		List<VistaSolFabrVO> lista = this.businessDelegate.IniciarSolicitudFabricacion();
		((VistaGenerarSolicitudFabricacion)vista).inicializarVista(lista);
	}
	
	
	
}


